#ifndef __THREAD_H__
#define __THREAD_H__

#include<pthread.h>
#include"public.h"
#include"logger.h"
//#include"reactor.h"

class Reactor;


class Thread
{
private:
    pthread_t m_tid;
    int m_channel[2];
    Reactor *m_reactor;
public:
    static void*taskFunc(void* arg);
    static void SocketPairEventCallBack(int fd,short events,void*arg);
    static void ClientIOEventCallBack(int fd,short events,void*arg);
    Thread(/*Thread* this*/);
    ~Thread();
    int GetSocketPairFirst()const;
    int GetSocketPairSecond()const;
    pthread_t  GetTid()const;
};



// class Thread
// {
// private:
//     pthread_t m_tid;
//     int m_chnnel[2];
// public:
//     static void*taskFunc(void* arg)//这里不能直接传参数，函数形参默认有this指针，类型不匹配 解决方法：写成静态，就没有this指针
//     {
//         Thread* thread=static_cast<Thread*>(arg);
//         LOG_INFO<<thread->m_tid;
//     }
//     Thread(/*Thread* this*/)
//     {
//         if(pthread_create(&m_tid,NULL,taskFunc,this))//我们将this指针传给它
//         {
//             LOG_ERROR<<"cteate thread failed";
//         }
//     }
//     ~Thread()
//     {
//         pthread_join(&m_tid,NULL);
//     }
// };


#endif